package com.rawchen.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 博客文章
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Blog {
	@TableId(type = IdType.AUTO)
	private Long id;
	/** 文章标题 */
	private String title;
	/** 文章正文 */
	private String content;
	/** 描述 */
	private String description;

	/** 公开或私密 */
	@TableField("is_published")
	private Boolean published;

	/** 推荐开关 */
	@TableField("is_recommend")
	private Boolean recommend;

	/** 赞赏开关 */
	@TableField("is_appreciation")
	private Boolean appreciation;

	/** 评论开关 */
	@TableField("is_comment_enabled")
	private Boolean commentEnabled;

	/** 逻辑删除 */
	@TableLogic(value = "0", delval = "1")
	private Boolean isDel;
	/** 创建时间 */
	private Date createTime;
	/** 更新时间 */
	private Date updateTime;
	/** 浏览次数 */
	private Integer views;

	/** 文章分类 */
	@TableField(exist = false)
	private Category category;

	/** 文章作者(因为是个人博客，也可以不加作者字段，暂且加上) */
	@TableField(exist = false)
	private User user;

	/** 是否置顶 */
	@TableField("is_top")
	private Boolean top;
	/** 密码保护 */
	private String password;
	/** 文章首图，用于随机文章展示 */
	private String firstPicture;

	/** 文章标签 */
	@TableField(exist = false)
	private List<Tag> tags = new ArrayList<>();
}
